﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.EnlaceDatos.SqlServer;
using vudu.Logica.Clases;

namespace vudu.PaginasWeb.G9PracticaMateria
{
    public partial class AgregarPractica : System.Web.UI.Page
    {
        #region Atributos clase AgregarPractica.aspx.cs
        public static string seccionTeoria, seccionPractica, nombrePractica,profesorPractica;
        public static List<Salon> salonesDisponiblesL, salonesDisponiblesM, salonesDisponiblesMI;
        public static List<Salon> salonesDisponiblesJ, salonesDisponiblesV;
        public static List<string> horaL= new List<string>();
         public static List<string>   horaM =new List<string>(); 
        public static List<string>    horaMI= new List<string>();
         public static List<string>   horaJ = new List<string>(); 
        public static List<string>    horaV = new List<string>();
        private HorarioDeClase horaDeClase = new HorarioDeClase();
        private static Materia materia;
        //se usa contHora para obtener la cantidad de horas practicas y se usa contHoraL a V para verificar
        //si la suma de ellas da igual a la cantidad de hroa practica
        private static int contHora,contHoraL,contHoraM,contHoraMi,contHoraJ,contHoraV;
        SqlServerPractica sqlServerPractica = new SqlServerPractica();
        Practica practica = new Practica();
        int restaHora,totalHora;
        private static int idEscuela;
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {

            string miRol = (string)Session["rol"];
           if (miRol != "Escuela")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");

            

            Profesor profesor = new Profesor();

          if (!Page.IsPostBack)
          {
              
              Escuela miEscuela = (Escuela)Session["Usuario"];
              idEscuela = miEscuela.IdEscuela;
              Label1.Text = "Escuela: " + miEscuela.NombreEscuela;
                CargarSeccionMateria();
                CargarProfesores();
             salonesDisponiblesL = new List<Salon>();
             salonesDisponiblesM = new List<Salon>();
             salonesDisponiblesMI = new List<Salon>();
             salonesDisponiblesJ = new List<Salon>();
             salonesDisponiblesV = new List<Salon>();
          }

        }
        //Carga Los profesores de la escuela en el combobox
        public void CargarProfesores()
        {
            //SqlServerPractica sqlServerPractica = new SqlServerPractica();

            List<Profesor> listaProfesores = new List<Profesor>();
            listaProfesores = sqlServerPractica.ConsultarProfesor(idEscuela);
            if (listaProfesores != null)
            {

                for (int j = 0; j < listaProfesores.Count; j++) // 
                {
                    ListItem registroLista = new ListItem();
                    if (listaProfesores[j].Estatus == "Activo")
                    {
                    registroLista.Text = listaProfesores[j].Nombre + " " + listaProfesores[j].Apellido;
                    registroLista.Value = listaProfesores[j].Cedula+"";
                    Profesor.Items.Add(registroLista);
                    }
                }
            }


        }
        //Carga Las materias de la escuela del pensum vigente que tienen horas practicas
        public void CargarSeccionMateria()
        {
           //trae una lista de seccion amteria de esa escuela que tengan horas de practica
            List<SeccionMateria> listaSeccionMateria = sqlServerPractica.ConsultarSeccionMateria(idEscuela);
            
            if (listaSeccionMateria != null )
            {
                for (int i = 0; i < listaSeccionMateria.Count; i++) // 
                   {
                      materia = new Materia();
                    int cod =listaSeccionMateria[i].Codigo;
                       string codigo = cod+"";
                       materia = sqlServerPractica.ConsultarMateriaPractica(listaSeccionMateria[i].IdSeccionMateria);
                      ListItem registroLista = new ListItem();
                      if (materia.HorasPractica != 0 && materia.Estatus == "Activo")
                      {
                          registroLista.Text = materia.Nombre + " -  " + codigo;
                          registroLista.Value = listaSeccionMateria[i].IdSeccionMateria + "";
                          SeccionMateria.Items.Add(registroLista);
                      }
                   }
            }

        }

        public void SeccionMateria_onselectedindexchanged(object sender, EventArgs e)
        {
            horaFinL.BackColor = System.Drawing.Color.White;
            horaInicioL.BackColor = System.Drawing.Color.White;
            horaFinM.BackColor = System.Drawing.Color.White;
            horaInicioM.BackColor = System.Drawing.Color.White;
            horaFinMI.BackColor = System.Drawing.Color.White;
            horaInicioMI.BackColor = System.Drawing.Color.White;
            horaFinJ.BackColor = System.Drawing.Color.White;
            horaInicioJ.BackColor = System.Drawing.Color.White;
            horaFinV.BackColor = System.Drawing.Color.White;
            horaInicioV.BackColor = System.Drawing.Color.White;
            if (SeccionMateria.SelectedValue != "0")
            {
                contHora=0;contHoraL=0;contHoraM=0;contHoraMi=0;contHoraJ=0;contHoraV= 0;
                VaciarHoraInicioL(); VaciarHoraInicioM(); VaciarHoraInicioMi(); VaciarHoraInicioJ(); VaciarHoraInicioV();
                VaciarHoraFinL(); VaciarHoraFinM(); VaciarHoraFinMi(); VaciarHoraFinJ(); VaciarHoraFinV();
                materia = new Materia();
                materia = sqlServerPractica.ConsultarMateriaPractica(Convert.ToInt32(SeccionMateria.SelectedValue));
                contHora = materia.HorasPractica;
                cantidadhorapractica.Text = materia.HorasPractica + "" + " Horas";
                LlenarHoraInicioL();LlenarHoraInicioM();LlenarHoraInicioMi();LlenarHoraInicioJ();LlenarHoraInicioV();
            }
            else
            {
                cantidadhorapractica.Text ="0 Horas";
                VaciarHoraInicioL();VaciarHoraInicioM();VaciarHoraInicioMi();VaciarHoraInicioJ();VaciarHoraInicioV();
                VaciarHoraFinL();VaciarHoraFinM();VaciarHoraFinMi();VaciarHoraFinJ();VaciarHoraFinV();
            }
        }
        //llena el combobox de las horainicio del dia lunes
        public void LlenarHoraInicioL()
                {
                  // if (ValidarHora(horaInicioL.SelectedValue.Substring(0, 2), horaFinL.SelectedValue.Substring(0, 2)) == false)
                     if (horaInicioL.SelectedValue == "00")
                    {
                        VaciarHoraInicioL();
                        
                        for (int i = 6; i < 22; i++)
                        {
                            string hora, hora1;
                            hora1 = (i + 1) + "" + ":00";
                            if (i < 9) { hora = "0" + (i + 1) + "" + ":00"; }
                            else { hora = hora1; }
                            ListItem registroList = new ListItem();
                            registroList.Text = hora1;
                            registroList.Value = hora;
                            horaInicioL.Items.Add(registroList);
                        }
                    }
                    
                }
        //llena el combobox de las horainicio del dia martes
        public void LlenarHoraInicioM()
        {
            //if (ValidarHora(horaInicioM.SelectedValue.Substring(0, 2), horaFinM.SelectedValue.Substring(0, 2)) == false)
             if (horaInicioM.SelectedValue == "00")
                    {
                        VaciarHoraInicioM();
                for (int i = 6; i < 22; i++)
                {
                    string hora, hora1;
                    hora1 = (i + 1) + "" + ":00";
                    if (i < 9) { hora = "0" + (i + 1) + "" + ":00"; }
                    else { hora = hora1; }
                    ListItem registroList = new ListItem();
                    registroList.Text = hora1;
                    registroList.Value = hora;
                    horaInicioM.Items.Add(registroList);
                }
            }
            
        }
        //llena el combobox de las horainicio del dia miercoles
        public void LlenarHoraInicioMi()
        {
           // if (ValidarHora(horaInicioMI.SelectedValue.Substring(0, 2), horaFinMI.SelectedValue.Substring(0, 2)) == false)
           // {
            if (horaInicioMI.SelectedValue == "00")
            {
                VaciarHoraInicioMi();
                
                for (int i = 6; i < 22; i++)
                {
                    string hora, hora1;
                    hora1 = (i + 1) + "" + ":00";
                    if (i < 9) { hora = "0" + (i + 1) + "" + ":00"; }
                    else { hora = hora1; }
                    ListItem registroList = new ListItem();
                    registroList.Text = hora1;
                    registroList.Value = hora;
                    horaInicioMI.Items.Add(registroList);
                }
            }
        }
        //llena el combobox de las horainicio del dia jueves
        public void LlenarHoraInicioJ()
        {
           // if (ValidarHora(horaInicioJ.SelectedValue.Substring(0, 2), horaFinJ.SelectedValue.Substring(0, 2)) == false)
            if (horaInicioJ.SelectedValue == "00")
            {
                VaciarHoraInicioJ();
                for (int i = 6; i < 22; i++)
                {
                    string hora, hora1;
                    hora1 = (i + 1) + "" + ":00";
                    if (i < 9) { hora = "0" + (i + 1) + "" + ":00"; }
                    else { hora = hora1; }
                    ListItem registroList = new ListItem();
                    registroList.Text = hora1;
                    registroList.Value = hora;
                    horaInicioJ.Items.Add(registroList);
                }
            }
        }
        //llena el combobox de las horainicio del dia viernes
        public void LlenarHoraInicioV()
        {
            //if (ValidarHora(horaInicioV.SelectedValue.Substring(0, 2), horaFinV.SelectedValue.Substring(0, 2)) == false)
            if (horaInicioV.SelectedValue == "00")
            {
                VaciarHoraInicioV();
                for (int i = 6; i < 22; i++)
                {
                    string hora, hora1;
                    hora1 = (i + 1) + "" + ":00";
                    if (i < 9) { hora = "0" + (i + 1) + "" + ":00"; }
                    else { hora = hora1; }
                    ListItem registroList = new ListItem();
                    registroList.Text = hora1;
                    registroList.Value = hora;
                    horaInicioV.Items.Add(registroList);
                }
            }
        }
        //llena el combobox de las horafin del dia lunes              
        public void LlenarHoraFinL()
                {
                    if (horaInicioL.SelectedValue != "00")
                    {
                        totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
                        for (int i = Convert.ToInt32(horaInicioL.SelectedValue.Substring(0, 2)) + 1; i <= Convert.ToInt32(horaInicioL.SelectedValue.Substring(0, 2))+contHora-totalHora; i++)
                        {
                            string hora, hora1;
                            hora1 = i + "" + ":00";
                            if (i <= 9) { hora = "0" + i + "" + ":00"; }
                            else { hora = hora1; }
                            if(i<23){
                            ListItem registroList = new ListItem();
                            registroList.Text = hora1;
                            registroList.Value = hora;
                            horaFinL.Items.Add(registroList);
                            }

                        }
                    }
                }
        //llena el combobox de las horafin del dia martes  
        public void LlenarHoraFinM()
                {
                    if (horaInicioM.SelectedValue != "00")
                    {
                        totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
                        for (int i = Convert.ToInt32(horaInicioM.SelectedValue.Substring(0, 2)) + 1; i <= Convert.ToInt32(horaInicioM.SelectedValue.Substring(0, 2)) + contHora - totalHora; i++)
                        {
                            string hora, hora1;
                            hora1 = i + "" + ":00";
                            if (i <= 9) { hora = "0" + i + "" + ":00"; }
                            else { hora = hora1; }
                            if (i < 23)
                            {
                                ListItem registroList = new ListItem();
                                registroList.Text = hora1;
                                registroList.Value = hora;
                                horaFinM.Items.Add(registroList);
                            }

                        }
                    }
                }
        //llena el combobox de las horafin del dia miercoles  
        public void LlenarHoraFinMi()
                {
                    if (horaInicioMI.SelectedValue != "00")
                    {
                        totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
                        for (int i = Convert.ToInt32(horaInicioMI.SelectedValue.Substring(0, 2)) + 1; i <= Convert.ToInt32(horaInicioMI.SelectedValue.Substring(0, 2)) + contHora - totalHora; i++)
                        {
                            string hora, hora1;
                            hora1 = i+ "" + ":00";
                            if (i <= 9) { hora = "0" + i + "" + ":00"; }
                            else { hora = hora1; }
                            if (i < 23)
                            {
                                ListItem registroList = new ListItem();
                                registroList.Text = hora1;
                                registroList.Value = hora;
                                horaFinMI.Items.Add(registroList);
                            }

                        }
                    }
                }
        //llena el combobox de las horafin del dia jueves  
        public void LlenarHoraFinJ()
                {
                    if (horaInicioJ.SelectedValue != "00")
                    {
                        totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
                        for (int i = Convert.ToInt32(horaInicioJ.SelectedValue.Substring(0, 2)) + 1; i <= Convert.ToInt32(horaInicioJ.SelectedValue.Substring(0, 2)) + contHora - totalHora; i++)
                        {
                            string hora, hora1;
                            hora1 = i + "" + ":00";
                            if (i <= 9) { hora = "0" + i+ "" + ":00"; }
                            else { hora = hora1; }
                            if (i < 23)
                            {
                                ListItem registroList = new ListItem();
                                registroList.Text = hora1;
                                registroList.Value = hora;
                                horaFinJ.Items.Add(registroList);
                            }

                        }
                    }
                }
        //llena el combobox de las horafin del dia viernes  
        public void LlenarHoraFinV()
                {
                    if (horaInicioV.SelectedValue != "00")
                    {
                        totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
                        for (int i = Convert.ToInt32(horaInicioV.SelectedValue.Substring(0, 2)) + 1; i <= Convert.ToInt32(horaInicioV.SelectedValue.Substring(0, 2)) + contHora - totalHora; i++)
                        {
                            string hora, hora1;
                            hora1 = i + "" + ":00";
                            if (i <= 9) { hora = "0" + i+ "" + ":00"; }
                            else { hora = hora1; }
                            if (i < 23)
                            {
                                ListItem registroList = new ListItem();
                                registroList.Text = hora1;
                                registroList.Value = hora;
                                horaFinV.Items.Add(registroList);
                            }

                        }
                    }
                   }
        //vacia combobo de hora inicio
        public void VaciarHoraInicioL()
        {
            horaInicioL.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaInicioL.Items.Add(registroLista2);
        }
        //vacia combobo de hora inicio
        public void VaciarHoraInicioM()
        {
            horaInicioM.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaInicioM.Items.Add(registroLista2);
        }
        //vacia combobo de hora inicio
        public void VaciarHoraInicioMi()
        {
            horaInicioMI.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaInicioMI.Items.Add(registroLista2);
        }
        //vacia combobo de hora inicio
        public void VaciarHoraInicioJ()
        {
            horaInicioJ.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaInicioJ.Items.Add(registroLista2);
        }
        //vacia combobo de hora inicio
        public void VaciarHoraInicioV()
        {
            horaInicioV.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaInicioV.Items.Add(registroLista2);
        }
        //vacia combobo de hora fin
        public void VaciarHoraFinL()
        {
            horaFinL.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaFinL.Items.Add(registroLista2);
        }
        //vacia combobo de hora fin
        public void VaciarHoraFinM()
        {
            horaFinM.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaFinM.Items.Add(registroLista2);
        }
        //vacia combobo de hora fin
        public void VaciarHoraFinMi()
        {
            horaFinMI.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaFinMI.Items.Add(registroLista2);
        }
        //vacia combobo de hora fin
        public void VaciarHoraFinJ()
        {
            horaFinJ.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaFinJ.Items.Add(registroLista2);
        }
        //vacia combobo de hora fin
        public void VaciarHoraFinV()
        {
            horaFinV.Items.Clear();
            ListItem registroLista2 = new ListItem("- Selecciona -", "00");
            horaFinV.Items.Add(registroLista2);
        }
        //valida que eligio hora inicio y hora fin 
        public bool ValidarHora(string horaInicio, string horaFin)
                {

                    if (horaInicio == "00" || horaFin == "00")
                    {
                        return false;
                    }
                    else
                    {
                         return true;
                          
                    }
           


            
                }

     protected void HoraInicioL_onselectedindexchanged(object sender, EventArgs e)
       {
         contHoraL = 0;
         VaciarHoraFinL();
         LlenarHoraFinL();
         LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();
                       
       }
                    
     protected void HoraInicioM_onselectedindexchanged(object sender, EventArgs e)
       {
         contHoraM = 0;
         VaciarHoraFinM();
         LlenarHoraFinM();
         LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();                   
       }
         
     protected void HoraInicioMI_onselectedindexchanged(object sender, EventArgs e)
       {
          contHoraMi = 0;
          VaciarHoraFinMi();
          LlenarHoraFinMi();
          LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();
       }

     protected void HoraInicioJ_onselectedindexchanged(object sender, EventArgs e)
     {
       contHoraJ = 0;
       VaciarHoraFinJ();
       LlenarHoraFinJ();
       LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();   
     }

     protected void HoraInicioV_onselectedindexchanged(object sender, EventArgs e)
      {
         contHoraV = 0;
         VaciarHoraFinV();
         LlenarHoraFinV();
         LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV(); 
      }
     //vacia los combobox que no se eligieron al escoger todas las horas
     public void vaciarHoras()
     {
         if (ValidarHora(horaInicioL.SelectedValue.Substring(0, 2), horaFinL.SelectedValue.Substring(0, 2)) == false)
         {
             VaciarHoraInicioL();
             VaciarHoraFinL();
         }
         if (ValidarHora(horaInicioM.SelectedValue.Substring(0, 2), horaFinM.SelectedValue.Substring(0, 2)) == false)
         {
             VaciarHoraInicioM();
             VaciarHoraFinM();
         }
         if (ValidarHora(horaInicioMI.SelectedValue.Substring(0, 2), horaFinMI.SelectedValue.Substring(0, 2)) == false)
         {
             VaciarHoraInicioMi();
             VaciarHoraFinMi();
         }
         if (ValidarHora(horaInicioJ.SelectedValue.Substring(0, 2), horaFinJ.SelectedValue.Substring(0, 2)) == false)
         {
             VaciarHoraInicioJ();
             VaciarHoraFinJ();
         }
         if (ValidarHora(horaInicioV.SelectedValue.Substring(0, 2), horaFinV.SelectedValue.Substring(0, 2)) == false)
         {
             VaciarHoraInicioV();
             VaciarHoraFinV();
         }
     }

     protected void horaFinL_onselectedindexchanged(object sender, EventArgs e)
                {
                    restaHora = Convert.ToInt32(horaFinL.SelectedValue.Substring(0, 2)) - Convert.ToInt32(horaInicioL.SelectedValue.Substring(0, 2));
                    contHoraL = restaHora;

                    if ((contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV) == contHora)
                    {
                        vaciarHoras();
                    }
                    else
                    {
                        LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();
                    }
                    
         
                }

     protected void horaFinM_onselectedindexchanged(object sender, EventArgs e)
                {
                    restaHora = Convert.ToInt32(horaFinM.SelectedValue.Substring(0, 2)) - Convert.ToInt32(horaInicioM.SelectedValue.Substring(0, 2));
                    contHoraM = restaHora;
                    if ((contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV) == contHora)
                    {
                        vaciarHoras();
                    }
                    else
                    {
                        LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();
                    }
                    
                }

     protected void horaFinMI_onselectedindexchanged(object sender, EventArgs e)
                {
         restaHora = Convert.ToInt32(horaFinMI.SelectedValue.Substring(0, 2)) - Convert.ToInt32(horaInicioMI.SelectedValue.Substring(0, 2));
                     contHoraMi = restaHora;
                    if ((contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV) == contHora)
                    {
                        vaciarHoras();
                    }
                    else
                    {
                        LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();
                    }
                }

     protected void horaFinJ_onselectedindexchanged(object sender, EventArgs e)
                {
                    restaHora = Convert.ToInt32(horaFinJ.SelectedValue.Substring(0, 2)) - Convert.ToInt32(horaInicioJ.SelectedValue.Substring(0, 2));
                     contHoraJ = restaHora;
                    if ((contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV) == contHora)
                    {
                        vaciarHoras();
                    }
                    else
                    {
                        LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();
                    }
                }

     protected void horaFinV_onselectedindexchanged(object sender, EventArgs e)
                {
                     restaHora = Convert.ToInt32(horaFinV.SelectedValue.Substring(0, 2)) - Convert.ToInt32(horaInicioV.SelectedValue.Substring(0, 2));
                     contHoraV = restaHora;
                    if ((contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV) == contHora)
                    {
                        vaciarHoras();
                    }
                    else
                    {
                        LlenarHoraInicioL(); LlenarHoraInicioM(); LlenarHoraInicioMi(); LlenarHoraInicioJ(); LlenarHoraInicioV();
                    }
                }
     //valida si hay salones para la hora elegida y el dia elegido
     public bool validacionHorarioL()
     {
         // se  suma todas las horas elegidas de todos los dias
         totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
         salonesDisponiblesL = new List<Salon>();
         horaFinL.BackColor = System.Drawing.Color.White;
         horaInicioL.BackColor = System.Drawing.Color.White;
         // si se selecciono hora fin y hora inicio entra al if
         if (ValidarHora(horaInicioL.SelectedValue.Substring(0, 2), horaFinL.SelectedValue.Substring(0, 2)) == true)
         {
             salonesDisponiblesL = horaDeClase.SalonesDisponibles(Convert.ToInt32(horaInicioL.SelectedValue.Substring(0, 2)), Convert.ToInt32(horaFinL.SelectedValue.Substring(0, 2)), "Lunes", idEscuela);
             
             horaL.Add(horaInicioL.SelectedValue);
             horaL.Add(horaFinL.SelectedValue);
             //si hay salones disponibles para el horario elegido apra ese dia retorna true
             if (salonesDisponiblesL.Count != 0)
             {
                 mensajelunes.Visible = false;
                 return true;
             }// de lo contrario retorna false
             else
             {
                 contHoraL = 0;
                 mensajelunes.Visible = true;
                 mensajelunes.ForeColor = System.Drawing.Color.Red;
                 return false;
             }
         }//de lo contrario retorna false
         else
         {
             if (contHoraL == 0 && totalHora != contHora)
             {
                 horaFinL.BackColor = System.Drawing.Color.Red;
                 horaInicioL.BackColor = System.Drawing.Color.Red;
             }
             mensajelunes.Visible = false;
             return false;
         }
        
     }
     //valida si hay salones para la hora elegida
     public bool validacionHorarioM()
     {
         totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
         salonesDisponiblesM = new List<Salon>();
         horaFinM.BackColor = System.Drawing.Color.White;
         horaInicioM.BackColor = System.Drawing.Color.White;
         if (ValidarHora(horaInicioM.SelectedValue.Substring(0, 2), horaFinM.SelectedValue.Substring(0, 2)) == true)
         {
             
             salonesDisponiblesM = horaDeClase.SalonesDisponibles(Convert.ToInt32(horaInicioM.SelectedValue.Substring(0, 2)), Convert.ToInt32(horaFinM.SelectedValue.Substring(0, 2)), "Martes", idEscuela);
             horaM.Add(horaInicioM.SelectedValue);
             horaM.Add(horaFinM.SelectedValue);
             if (salonesDisponiblesM.Count != 0)
             {
                 mensajemartes.Visible = false;
                 return true;
             }
             else
             {
                 contHoraM = 0;
                 mensajemartes.Visible = true;
                 mensajemartes.ForeColor = System.Drawing.Color.Red;
                 return false;
             }
         }
         else
         {
             if (contHoraM == 0 && totalHora != contHora)
             {
                 horaFinM.BackColor = System.Drawing.Color.Red;
                 horaInicioM.BackColor = System.Drawing.Color.Red;
             }
             mensajemartes.Visible = false;
             return false;
         }
     }
     //valida si hay salones para la hora elegida
     public bool validacionHorarioMI()
     {
         totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
         salonesDisponiblesMI = new List<Salon>();
         horaFinMI.BackColor = System.Drawing.Color.White;
         horaInicioMI.BackColor = System.Drawing.Color.White;
         if (ValidarHora(horaInicioMI.SelectedValue.Substring(0, 2), horaFinMI.SelectedValue.Substring(0, 2)) == true)
         {
             salonesDisponiblesMI = horaDeClase.SalonesDisponibles(Convert.ToInt32(horaInicioMI.SelectedValue.Substring(0, 2)), Convert.ToInt32(horaFinMI.SelectedValue.Substring(0, 2)), "Miercoles", idEscuela);
             horaMI.Add(horaInicioMI.SelectedValue);
             horaMI.Add(horaFinMI.SelectedValue);
             if (salonesDisponiblesMI.Count != 0)
             {
                 mensajemiercoles.Visible = false;
                 return true;
             }
             else
             {
                 contHoraMi = 0;
                 mensajemiercoles.Visible = true;
                 mensajemiercoles.ForeColor = System.Drawing.Color.Red;
                 return false;
             }
         }
         else
         {
             if (contHoraMi == 0 && totalHora != contHora)
             {
                 
                 horaFinMI.BackColor = System.Drawing.Color.Red;
                 horaInicioMI.BackColor = System.Drawing.Color.Red;
             }
             mensajemiercoles.Visible = false;
             return false;
         }
     }
     //valida si hay salones para la hora elegida
     public bool validacionHorarioJ()
     {
         totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
         salonesDisponiblesJ = new List<Salon>();
         horaFinJ.BackColor = System.Drawing.Color.White;
         horaInicioJ.BackColor = System.Drawing.Color.White;
         if (ValidarHora(horaInicioJ.SelectedValue.Substring(0, 2), horaFinJ.SelectedValue.Substring(0, 2)) == true)
         {
             salonesDisponiblesJ = horaDeClase.SalonesDisponibles(Convert.ToInt32(horaInicioJ.SelectedValue.Substring(0, 2)), Convert.ToInt32(horaFinJ.SelectedValue.Substring(0, 2)), "Jueves", idEscuela);
             horaJ.Add(horaInicioJ.SelectedValue);
             horaJ.Add(horaFinJ.SelectedValue);
             if (salonesDisponiblesJ.Count != 0)
             {
                 mensajejueves.Visible = false;
                 return true;
             }
             else
             {
                 contHoraJ = 0;
                 mensajejueves.Visible = true;
                 mensajejueves.ForeColor = System.Drawing.Color.Red; ;
                 return false;
             }
         }
         else
         {
             if (contHoraJ == 0 && totalHora != contHora)
             {
                 horaFinJ.BackColor = System.Drawing.Color.Red;
                 horaInicioJ.BackColor = System.Drawing.Color.Red;
             }
             mensajejueves.Visible = false;
             return false;
         }
     }
     //valida si hay salones para la hora elegida
     public bool validacionHorarioV()
     {
         totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
         salonesDisponiblesV = new List<Salon>();
         horaFinV.BackColor = System.Drawing.Color.White;
         horaInicioV.BackColor = System.Drawing.Color.White;
         if (ValidarHora(horaInicioV.SelectedValue.Substring(0, 2), horaFinV.SelectedValue.Substring(0, 2)) == true)
         {
             salonesDisponiblesV = horaDeClase.SalonesDisponibles(Convert.ToInt32(horaInicioV.SelectedValue.Substring(0, 2)), Convert.ToInt32(horaFinV.SelectedValue.Substring(0, 2)), "Viernes", idEscuela);
             horaV.Add(horaInicioV.SelectedValue);
             horaV.Add(horaFinV.SelectedValue);
             if (salonesDisponiblesV.Count != 0)
             {
                 mensajeviernes.Visible = false;
                 return true;
             }
             else
             {
                 contHoraV = 0;
                 mensajeviernes.Visible = true;
                 mensajeviernes.ForeColor = System.Drawing.Color.Red;
                 return false;
             }
         }
         else
         {
             if ((contHoraV == 0 && totalHora != contHora))
             {
                 horaFinV.BackColor = System.Drawing.Color.Red;
                 horaInicioV.BackColor = System.Drawing.Color.Red;
             }
             mensajeviernes.Visible = false;
             return false;
         }
     }

        protected void Button2_Click(object sender, EventArgs e)
        {
            try
            {
                //se verifica de que el numero de seccion no sea letra
                Convert.ToInt64(SeccionPractica.Text);
                //se verifica de que el numero de seccion no sea 0
                if (Convert.ToInt64(SeccionPractica.Text) != 0)
                {
                    mensajeSeccionPracticaNum.Visible = false;
                    horaL = new List<string>(); horaM = new List<string>(); horaMI = new List<string>(); horaJ = new List<string>();
                    horaV = new List<string>();
                    validacionHorarioL(); validacionHorarioM(); validacionHorarioMI(); validacionHorarioJ(); validacionHorarioV();

                    totalHora = contHoraL + contHoraM + contHoraMi + contHoraJ + contHoraV;
                    //valida que se llenaron todos los valores pedidos
                    if (contHora == totalHora && SeccionMateria.SelectedValue != "0" && SeccionPractica.Text != "" && NombrePractica.Text != "" && Profesor.SelectedValue != "0")
                    {
                        mensajeProfesor.Visible = false;
                        //valida que el nombre de la practica no exista, si existe da un mensaje de error
                        if (practica.ValidarNombrePractica(Convert.ToInt32(SeccionMateria.SelectedValue), NombrePractica.Text) == true)
                        {
                            //valida que la seccion escrita no este repetida
                            if (practica.ValidarSeccionPractica(Convert.ToInt32(SeccionMateria.SelectedValue), Convert.ToInt32(SeccionPractica.Text)) == true)
                            {
                                mensajeNombrePractica.Visible = false;
                                seccionTeoria = SeccionMateria.SelectedValue;
                                seccionPractica = SeccionPractica.Text;
                                nombrePractica = NombrePractica.Text;
                                profesorPractica = Profesor.SelectedValue;
                                //redirecciona a la pagina siguiente para elegir los salones
                                Response.Redirect("../G9PracticaMateria/AgregarSalonP.aspx");
                            }
                            else
                            {
                                mensajeSeccionPractica.Visible = true;
                                mensajeSeccionPractica.ForeColor = System.Drawing.Color.Red;
                            }
                        }
                        else
                        {
                            mensajeNombrePractica.Text = "Nombre ya Existe";
                            mensajeNombrePractica.Visible = true;
                            mensajeNombrePractica.ForeColor = System.Drawing.Color.Red;
                        }
                        
                    }
                    else
                    {
                        if (SeccionMateria.SelectedValue == "0")
                        {
                            nombreTeoria.ForeColor = System.Drawing.Color.Red;
                        }
                        else { nombreTeoria.ForeColor = System.Drawing.Color.Black; }
                        if (SeccionPractica.Text == "")
                        {
                            seccionPract.ForeColor = System.Drawing.Color.Red;
                        }
                        else { seccionPract.ForeColor = System.Drawing.Color.Black; }
                        if (NombrePractica.Text == "")
                        {
                            mensajeNombrePractica.Text = "Dato Invalido";
                            mensajeNombrePractica.ForeColor = System.Drawing.Color.Red;
                            mensajeNombrePractica.Visible = true;
                        }
                        else { mensajeNombrePractica.Visible = false; }
                        if (Profesor.SelectedValue == "0")
                        {
                            mensajeProfesor.ForeColor = System.Drawing.Color.Red;
                            mensajeProfesor.Visible = true;
                        }
                        else { mensajeProfesor.Visible = false;
                        mensajeSeccionPracticaNum.ForeColor = System.Drawing.Color.Red;
                        }
                    }
                }
                else { mensajeSeccionPracticaNum.Visible = true; }
        }
            catch (Exception )
            {
               
                mensajeSeccionPracticaNum.Visible = true;
                mensajeSeccionPracticaNum.ForeColor = System.Drawing.Color.Red;
            }
            
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Redirect("../Home/HomeEscuela.aspx");

        }
    }
}